Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

problem z ifem


Rekomendowane odpowiedzi

Opublikowano

siema mam problem z ifem

 

wyglada to w sposob, ze osoba wpisuje H albo L, ale wczesniej jest liczba wylosowowana z przedzialu (1-6) okreslona nazwa losNum.

 

i teraz w ifie sprawdzam, ze jesli wpisal L a liczba wylosowana jest mniejsza od 4 to wypisuje ze wygral, a jesli jest wieksza od 3 to wypisuje ze przegral

 

jesli wpisal H a liczba wylosowana jest wieksza od 3 to wypisuje ze wygral, a jesli liczba wylosowana jest mniejsza niz 4 to pisze ze przegral

 

no wlasnie i tkwi problem w tym ze to mi nie dziala. jesli wpisze L  i wylosuje cyfre to zawsze pisze ze przegral (a jesli cyfra to 1, 2 lub 3 to powinno pisac ze wygral), a jesli wpisze H to zawsze pisze ze wygral (a dla 4, 5 i 6 powino pisac tylko ze wygral)

 

moj kod wyglada tak:

void Losuj::obstawNumer()
{
    cout << "Wpisz czy chcesz obstawiac na Low (l) czy na High (h):" << endl;
    cin >> obstawianieNumerka;

    if(obstawianieNumerka == "l")
    {
        if(losNum<4)
        {
            cout << "Postawiles na LOW, oplacilo Ci sie!" << endl;
        }else if (losNum>3){
            cout << "Postawiles na Low, a wygralo HIGH!" << endl;
        }
    }else if (obstawianieNumerka == "h")
    {
         if(losNum>3)
        {
            cout << "Postawiles na HIGH, oplacilo Ci sie!" << endl;
        }else if (losNum ){
            cout << "Postawiles na High, a wygralo LOW!" << endl;
        }
    }
    }

 

doradzcie mi cos

<>

Opublikowano

Wklej cały kod.

main.cpp:

 

#include <iostream>
#include <windows.h>
#include <time.h>
#include "losowania.h"
using namespace std;


int main()
{
    Losuj los;
    los.losujKase();
    los.obstawKase();
    los.obstawNumer();
    los.losujNumer();

    return 0;
}
 

losowania.h

 

#include <iostream>

using namespace std;

class Losuj
{
    int losNum;
    int losKase;
    int obstawianieKasy;
    string obstawianieNumerka;
    int nowaKasa;
public:
    int losujNumer();
    int losujKase();
    int obstawKase();
    void obstawNumer();
    int portfel();
};
 

losowania.cpp

 

#include <iostream>
#include "losowania.h"
#include <windows.h>
#include <time.h>

using namespace std;

int Losuj::losujNumer()
{
    srand(time(NULL));
    losNum = rand()%6+1;
    cout << "Wylosowany numerek to: " << losNum << endl;
    return losNum;
}
int Losuj::losujKase()
{
    srand(time(NULL));
    losKase = rand()%100+51;
    cout << "Wylosowalo Ci: " << losKase << " kasy." << endl;
    return losKase;
}
int Losuj::obstawKase()
{
    cout << "Ile kasy chcesz obstawic: " << endl;
    cin >> obstawianieKasy;

    if(obstawianieKasy < losKase)
    {
                cout << "Obstawiles: " << obstawianieKasy << " zl." << endl;

    }else if (obstawianieKasy>losKase){
         cout << "Nie masz tyle kasy! "<<endl<< "Ile kasy chcesz obstawic: "<<endl;
        cin >> obstawianieKasy;
    }
    return obstawianieKasy;
}
void Losuj::obstawNumer()
{
    cout << "Wpisz czy chcesz obstawiac na Low (l) czy na High (h):" << endl;
    cin >> obstawianieNumerka;

    if(obstawianieNumerka == "l")
    {
        if(losNum<4)
        {
            cout << "Postawiles na LOW, oplacilo Ci sie!" << endl;
        }else if (losNum>3){
            cout << "Postawiles na Low, a wygralo HIGH!" << endl;
        }
    }else if (obstawianieNumerka == "h")
    {
         if(losNum>3)
        {
            cout << "Postawiles na HIGH, oplacilo Ci sie!" << endl;
        }else if (losNum ){
            cout << "Postawiles na High, a wygralo LOW!" << endl;
        }
    }
    }

<>

Opublikowano
void Losuj::obstawNumer()
{
    cout << "Wpisz czy chcesz obstawiac na Low (l) czy na High (h):" << endl;
    cin >> obstawianieNumerka;

    if(obstawianieNumerka == "l")
    {
        if(losNum<4)
        {
            cout << "Postawiles na LOW, oplacilo Ci sie!" << endl;
        }else{
            cout << "Postawiles na Low, a wygralo HIGH!" << endl;
        }
    }else if (obstawianieNumerka == "h")
    {
         if(losNum>3)
        {
            cout << "Postawiles na HIGH, oplacilo Ci sie!" << endl;
        }else{
            cout << "Postawiles na High, a wygralo LOW!" << endl;
        }
    }
    }

Nie wiem czy zadziała, jeśli nie- będziemy dalej myśleć.

Opublikowano
void Losuj::obstawNumer()
{
    cout << "Wpisz czy chcesz obstawiac na Low (l) czy na High (h):" << endl;
    cin >> obstawianieNumerka;

    if(obstawianieNumerka == "l")
    {
        if(losNum<4)
        {
            cout << "Postawiles na LOW, oplacilo Ci sie!" << endl;
        }else{
            cout << "Postawiles na Low, a wygralo HIGH!" << endl;
        }
    }else if (obstawianieNumerka == "h")
    {
         if(losNum>3)
        {
            cout << "Postawiles na HIGH, oplacilo Ci sie!" << endl;
        }else{
            cout << "Postawiles na High, a wygralo LOW!" << endl;
        }
    }
    }

Nie wiem czy zadziała, jeśli nie- będziemy dalej myśleć.

 

nie zadziałało, to bylo oczywiste :<

<>

Opublikowano

A nie powinieneś najpierw wylosować numerka, a dopiero później go obstawiać?

Bo u mnie podczas losowania zmienna losNum zawsze ma wartość -858993460.

W main() zmień kolejność:

int main()
{
    Losuj los;
    los.losujKase();
    los.obstawKase();
    los.losujNumer();
    los.obstawNumer();

    return 0;
}
Tylko usuń "podpowiedź".

ㅈㅈ.

Opublikowano

racja, dziala, dzieki

 

@up

u mnie losNum zawsze mial od 1-6

Ale dopiero po obstawieniu i porównaniu wartości. Przed tym nie mógł mieć w sobie niczego sensownego.

Można to sprawdzić wyświetlając wartość losNum w konsoli:

 

 

void Losuj::obstawNumer()
{
    cout << "Wpisz czy chcesz obstawiac na Low (l) czy na High (h):" << endl;
    cin >> obstawianieNumerka;

	cout << losNum << endl; // Tutaj sprawdzamy, czy losNum ma odpowiednią wartość.

    if(obstawianieNumerka == "l")
    {
        if(losNum<4)
        {
            cout << "Postawiles na LOW, oplacilo Ci sie!" << endl;
        }else if (losNum>3){
            cout << "Postawiles na Low, a wygralo HIGH!" << endl;
        }
    }else if (obstawianieNumerka == "h")
    {
         if(losNum>3)
        {
            cout << "Postawiles na HIGH, oplacilo Ci sie!" << endl;
        }else if (losNum ){
            cout << "Postawiles na High, a wygralo LOW!" << endl;
        }
    }
    }

 

Dopiero po wykonaniu tego kodu losNum przyjmowało sensowną wartość (bo po tym była wywoływana funkcja losujNumer()). :)

ㅈㅈ.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...